import Vue from 'vue'
import axios from 'axios'
import session from '@/utils/session' // 引入sessiontorage组件

// 设置接口路径
// const url = process.env.NODE_ENV === 'development' ? 'http://82.156.4.210:8112' : 'http://82.156.4.210:8112' 
const url = 'https://sdkmqzq.shidongkougas.com.cn'

let http = axios.create({
  baseURL: url,
  timeout: 8000, // 请求延时时间
  responseType: 'json', // 请求数据类型包括  'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'
  params: {} // 无论请求为何种类型，在params中的属性都会以key=value的格式在urlzhong拼接
})
console.log('当前环境是：' + process.env.NODE_ENV)

// 添加请求拦截器
http.interceptors.request.use(
  config => {
    let token = session.get('token')
    if (token) {
      config.headers.Authorization = token // 将token设置成请求头
    }
    return config
  },
  error => {
    return Promise.reject(error)
  }
)

// 添加响应拦截器
http.interceptors.response.use(
  res => {
    // 接口报错统一拦截
    let { status, msg } = res.data
    if (status === 1) {
      this.$toast.error(msg)
    }
    return res
  },
  error => {
    if (error && error.response) {
      let { status } = error.response.data
      if (status === 400) {
        this.$toast.error('服务异常')
      }
      if (status === 404) {
        this.$toast.error('页面请求地址错误')
      }
      if (status === 500) {
        this.$toast.error('服务异常')
      }
      if (status === 'canceled') {
        this.$toast.error('服务异常')
      }
    }

    // 对响应错误做点什么
    if (error.message.includes('timeout')) { // 判断请求异常信息中是否含有超时timeout字符串
      this.$toast.error('请求超时')
    }
    return Promise.reject(error)
  }
)

// 阻止启动生产消息，常用作指令
Vue.config.productionTip = false

Vue.prototype.$api = {
  // 企业列表
  enterpriseList: params => { return http.get(`/yqyp/api/enterprise/list`, { params: params }) },

  // 储罐罐组列表
  tankGroupList: params => { return http.get(`/yqyp/api/tank/tankGroup/list`, { params: params }) },

  // 储罐号
  tankGroupNo: params => { return http.get(`/yqyp/api/tank/list/byTankGroupNo/${params}`) },

  // 手动入库
  traceToTank: params => { return http.post(`/yqyp/api/trace/back/toTank`, params) },

  // 司机登记
  addCarInout: params => { return http.post(`/yqyp/api/car/addCarInout`, params) },

  // 根据运单号查询车辆信息
  byTransportCode: params => { return http.get(`/yqyp/api/car/info/byTransportCode`, { params }) },

  // docker 删除
  // deleteDockerxxx: params => { return http.delete(`/docker/deleteDocker`, { params: params }) }
}
